package tk.chenyilin.server;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

/**
 * 进行客户端与服务器通信的关键类
 * 
 * @author 陈奕霖
 * 
 */
public class Connection extends Thread {

	Server server;
	Socket socket;
	InputStream is;
	OutputStream os;

	/*
	 * xml的类型
	 */
	static final String LOGIN = "1"; // 登录信息
	static final String MESSAGE = "2"; // 用户发来的消息
	static final String USER_LIST = "3"; // 在线用户列表
	static final String EXIT = "4"; // 客户端退出

	public Connection(Server server, Socket socket) throws Exception {
		this.server = server;
		this.socket = socket;
		// 获取IO流
		is = socket.getInputStream();
		os = socket.getOutputStream();
	}

	@Override
	public void run() {
		try {
			ExtractInfo exInfo = new ExtractInfo(this);
			while (true) {
				/**
				 * 暂时没有处理数据大小的问题
				 */
				byte[] buf = new byte[5000];
				int len = is.read(buf);
				String message = new String(buf, 0, len); // 接收到的信息
				exInfo.work(message); // 处理信息
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
